<?php
	/**
	 * 回答问题控制器
	 */
	class AnswerController extends CommonController{					
		/**
		 * 提交回答方法
		 * 
		 */
		public function addAnswer(){

			 //处理内容安全问题
			 $_POST['content'] = htmlspecialchars($_POST['content']);
			 //回答时间
			 $_POST['time'] = time();
			//当用户存在 时才进行数据操作
			 $uid = session('uid');
			 if(isset($uid)){
				$model = M('ask');
				//操作user表
				//操作用户回答表
				//		select * from hd_ask;   	当提交回答时hd_ask  answer+1
				//		select * from hd_user; 		当提交回答时hd_user中的answer+1
				//		select * from hd_answer;  	当提交回答时hd_answer中的 uid为session[uid] asid为
					  //当前ask的id  时间为当前时间戳time=time()
				//写入回答表
				$answer = $model->_exec("INSERT INTO hd_answer(content,time,uid,asid) VALUES('{$_POST['content']}',{$_POST['time']},{$_POST['uid']},{$_POST['qid']})");
				//给问答表中的answer字段+1
				$ask = $model->_exec("UPDATE hd_ask SET answer=answer+1 WHERE asid={$_POST['qid']}");
				//给用户表中的user中的answer+1
				//添加经验和金币 
				$angold = $this->getRule()['ANSWER'];
				$anexp = $this->getRule()['ANSWEREXP'];
				$user = $model->_exec("UPDATE hd_user SET answer=answer+1,point=point+{$angold},exp=exp+{$anexp} WHERE uid={$uid}");
				
				$result = $model->query("SELECT uid,username,face FROM hd_user WHERE uid={$uid}");
				$result = current($result);
				if($answer && $ask && $user){
					$result['time'] = date('Y-m-d',$_POST['time']);
					$result['face'] = __PUBLIC__.$result['face'];
					$result['content'] = $_POST['content'];
					unset($result['passwd']);
					echo json_encode($result);
				}
					
			}	
		}
		
		
		/**
		 * 采纳回答的方法
		 */
		 public function accept(){
		 				
		 	//回答ID
		 	$accptId = (int)$_GET['anid'];
			//问题ID
			$asid = (int)$_GET['asid'];
			//回答问题用户的ID
			$asuid = (int)$_GET['asuid'];
//			echo $asuid;die;
			//先判断一下当前发表问题的用户ID是否和
			//查询当前问题的数据
			$model = M('ask');
			//将问题表中的solve设置为1表示解决这个问题
			$ask = $model->_exec("UPDATE hd_ask SET solve=1 WHERE asid={$asid}");
			if(!$ask){
				$this->error('您的这个回答已经采纳过了回答',__APP__.'?c=show&asid='.$asid);
				die;
			}
			//将回答问题的ID中的solve设置为1
			$answer = $model->_exec("UPDATE hd_answer SET accept=1 WHERE asid={$asid}");
			//悬赏的金币 和扣除  发布悬赏人的金币 
			$askidandpoint = current($model->query("SELECT uid,reward FROM hd_ask WHERE asid={$asid}"));

			//扣除发布悬赏人的金币
			$model->_exec("UPDATE hd_user SET point=point-{$askidandpoint['reward']} WHERE uid ={$askidandpoint['uid']}");
			//给添加采纳者添加金币
			$model->_exec("UPDATE hd_user SET point=point+{$askidandpoint['reward']} WHERE uid = {$asuid}");
			//给用户的的accept添加+1  添加经验  添加金币  
			$accpoint = $this->getRule()['ACCEPT'];
			$accexp = $this->getRule()['ACCEPTEXP'];
			$user = $model->_exec("UPDATE hd_user SET accept=accept+1,point=point+{$accpoint},exp=exp+{$accexp} WHERE uid={$asuid}");
			$username = $_GET['anusername'];
			
			if($ask && $answer && $user){
				$this->success('您已经采纳了'.$username.'给您的回答~!', __APP__.'?c=show&asid='.$asid);
			}
			
		 }
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
									
	}
